feat: add full PWA support for desktop and mobile #4595
+199
−22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Type
Relevant Issues
resolves #4592
What is in this change?
This PR implements comprehensive Progressive Web App (PWA) support, enabling users to install AnythingLLM as a standalone application on their devices with a native app-like experience.
Core PWA Infrastructure
/manifest.json) that respects custom branding settings"any maskable"purpose for adaptive displaymobile-web-app-capablefor Android PWA supportapple-mobile-web-app-capablefor iOS standalone mode (critical for launching outside Safari)apple-mobile-web-app-status-bar-style: black-translucentfor iOS status bar theming/route after specific routes (/robots.txt,/manifest.json)iOS-Specific Enhancements
black-translucentstylewhitebackground for light mode#0e0f0fbackground for dark mode (matches app header)@media (prefers-color-scheme: dark)for automatic switchingtheme-colormeta tags were removed as they conflicted with this approach!text-[16px]on mobile,md:${textSizeClass}on desktopmaximum-scaleused)utils/pwa.jshelper that checks multiple detection methodsdisplay-mode: standalonemedia query,navigator.standalone(iOS), and Android TWAMobile UX Improvements
overscroll-behavior: nonetohtmlelement for screens ≤ 600pxpb-4(16px)pb-5(20px) for extra clearance from screen edgemd:pb-0rounded-2xl(16px)rounded-3xl(24px) for more modern app-like aestheticrounded-2xlCustom Branding Integration
.map()approach that selectively overrides only specific tags:<title>, meta title, og:title, twitter:title, favicon, apple-touch-iconDeveloper Validations
yarn lintfrom the root of the repo & committed changes